package com.region.http.client.annotation.configurer;

import java.lang.annotation.*;

/**
 * @author liujieyu
 * @date 2024/8/20 15:57
 * @desciption
 */
@Retention(value = RetentionPolicy.RUNTIME)
@Target(value = {ElementType.METHOD})
@Documented
public @interface ParameterConstant {

    /**
     * Set the request header constant parameter
     * @return
     */
    ParameterConstantEntry[] headers() default {};

    /**
     * Set the request path constant parameter
     * @return
     */
    ParameterConstantEntry[] pathVariables() default {};

    /**
     * Set the request general constant parameter
     * @return
     */
    ParameterConstantEntry[] params() default {};

    /**
     * Set the request body constant parameter
     * @return
     */
    String body() default "";

    @Retention(RetentionPolicy.RUNTIME)
    @Target({})
    @interface ParameterConstantEntry {
        /**
         * The constant map key
         * @return
         */
        String key() default "";

        /**
         * The constant map value
         * @return
         */
        String value() default "";

    }

}
